使用轨迹布局 (Trajectory Layout) 节点

轨迹布局 (Trajectory Layout) 节点可沿轨迹路径排列项。 Kanzi Studio 有几种类型的轨迹供您使用。您需要不同类型的轨迹时,可以在第三方工具中创建样条轨迹并将其导入到Kanzi Studio 工程中。请参阅轨迹

创建 轨迹布局 (Trajectory Layout) 节点

要创建 轨迹布局 (Trajectory Layout) 节点:

  1. 工程 (Project)按下 Alt 并右键点击要在其中创建轨迹布局 (Trajectory Layout) 节点的那个节点,然后选择 3D 轨迹布局 (Trajectory Layout 3D)2D 轨迹布局 (Trajectory Layout 2D)
    请注意,只能在 3D 节点内创建 3D 节点,只能在 2D 节点内创建 2D 节点。
    建议

    要查看轨迹,在预览 (Preview) 中点击 进入分析 (Analyze) 模式,右键点击 并选择调试对象 (Debug objects)

  2. 工程 (Project) 中向您在上一步中创建的布局添加子节点。
    例如,如果您创建 3D 轨迹布局 (Trajectory Layout 3D) 节点,则添加若干球体 (Sphere) 节点,如果您想创建 2D 轨迹布局 (Trajectory Layout 2D) 节点,则添加若干图像 (Image) 节点。
    添加子节点时,轨迹布局 (Trajectory Layout) 节点将其沿轨迹布局 (Trajectory Layout) 节点使用的轨迹定位。
  3. (可选) Kanzi Studio 默认创建并使用圆形轨迹。您可以使用角度、弧形、圆形、椭圆、直线、矩形、螺旋、样条或梯形轨迹。请参阅轨迹

调整轨迹布局 (Trajectory Layout) 节点中各项之间的距离

轨迹布局 (Trajectory Layout) 节点自动计算其子节点之间的距离。

要调整轨迹布局 (Trajectory Layout) 节点中子节点之间的距离,在 工程 (Project) 中选择轨迹布局 (Trajectory Layout) 节点,并在属性 (Properties) 中添加并设置重写距离 (Override Distance) 属性。

调整轨迹布局 (Trajectory Layout) 节点中各项的位置

默认情况下,轨迹布局 (Trajectory Layout) 节点从轨迹样条开始处排列其子节点。

要调整轨迹布局 (Trajectory Layout) 节点子节点在轨迹中的起始位置,在 工程 (Project) 中选择轨迹布局 (Trajectory Layout) 节点并在属性 (Properties) 中添加并设置开始偏移 (Start Offset) 属性。

设置 2D 轨迹布局 (Trajectory Layout 2D) 节点的外观

要设置 2D 节点的外观:

在 API 中使用 3D 轨迹布局 (Trajectory Layout 3D) 节点

要创建 3D 轨迹布局节点:

//创建一个名为 Trajectory 的 3D 轨迹布局。
TrajectoryLayout3DSharedPtr trajectoryLayout = TrajectoryLayout3D::create(domain, "Trajectory");

要创建轨迹并在轨迹布局中使用轨迹:

//创建一个名为 Circle 的半径为 4 个设备无关单位的圆形轨迹。
//设置轨迹布局,以使其使用轨迹。
TrajectorySharedPtr trajectory = Trajectory::createCircle(Vector3(), Vector3::up(), 0.0f, 4.0f, domain, "Circle");
trajectoryLayout->setTrajectory(trajectory);

要将项添加到轨迹布局:

//创建立方体网格并将它们添加为轨迹布局的项。
//轨迹上的项将按您将它们添加到轨迹布局中时所用的顺序显示。
Model3DSharedPtr item1 = Model3D::createCube(domain, "item1", 1.0f, ThemeRed);
trajectoryLayout->addChild(item1);
Model3DSharedPtr item2 = Model3D::createCube(domain, "item2", 1.0f, ThemeGreen);
trajectoryLayout->addChild(item2);
Model3DSharedPtr item3 = Model3D::createCube(domain, "item3", 1.0f, ThemeBlue);
trajectoryLayout->addChild(item3);
Model3DSharedPtr item4 = Model3D::createCube(domain, "item4", 1.0f, ThemeOrange);
trajectoryLayout->addChild(item4);
Model3DSharedPtr item5 = Model3D::createCube(domain, "item5", 1.0f, ThemeGray);
trajectoryLayout->addChild(item5);

要手动将项置于轨迹布局中:

//将项置于轨迹的中间。
TrajectoryLayout3D::setOverrideOffset(*item2, 0.5f);

//将项与项之间的距离设置为轨迹长度的三分之一。
trajectoryLayout->setOverrideDistance(0.3f);

有关详细信息,请参阅 API reference中的 TrajectoryLayout3D 类。

在 API 中使用 2D 轨迹布局 (Trajectory Layout 2D) 节点

要手动将项置于轨迹布局中:

//将项置于轨迹的中间。
TrajectoryLayout3D::setOverrideOffset(*item2, 0.5f);

//将项与项之间的距离设置为轨迹长度的三分之一。
trajectoryLayout->setOverrideDistance(0.3f);

有关详细信息,请参阅 API reference中的 TrajectoryLayout2D 类。

轨迹布局 (Trajectory Layout) 属性类型和消息

要查看 轨迹布局 (Trajectory Layout) 节点可用属性类型和消息的完整列表,请参阅 Trajectory layout 2DTrajectory layout 3D

另请参阅

使用流式布局 (Flow Layout) 节点

使用堆栈布局 (Stack Layout) 节点

布局控制节点

使用 3D 轨迹列表框 (Trajectory List Box 3D) 节点

使用轨迹布局 (Trajectory Layout) 节点

使用弧形轨迹

使用圆形轨迹

使用椭圆轨迹

使用直线轨迹

使用矩形轨迹

使用螺旋轨迹

使用样条轨迹

使用梯形轨迹

轨迹